রিয়েল-টাইম চ্যাট অ্যাপ্লিকেশন তৈরি

Microsoft Technologies - ডট নেট কোর (Dot.Net Core) SignalR দিয়ে রিয়েল-টাইম অ্যাপ্লিকেশন তৈরি |
168
168

ASP.NET Core-এ একটি রিয়েল-টাইম চ্যাট অ্যাপ্লিকেশন তৈরি করতে, SignalR প্রযুক্তি ব্যবহার করা হয়। SignalR হল একটি লাইব্রেরি যা রিয়েল-টাইম, ডুয়াল-ডাইরেকশনাল ওয়েব যোগাযোগের জন্য ব্যবহৃত হয়, যেখানে সার্ভার এবং ক্লায়েন্টের মধ্যে ডাটা একে অপরকে তাত্ক্ষণিকভাবে পাঠানো যায়। এটি ওয়েব অ্যাপ্লিকেশনগুলির জন্য খুবই গুরুত্বপূর্ণ, যেমন চ্যাট অ্যাপ্লিকেশন, লাইভ আপডেট এবং নোটিফিকেশন সিস্টেম।

ASP.NET Core SignalR ব্যবহার করে খুব সহজেই একটি রিয়েল-টাইম চ্যাট অ্যাপ্লিকেশন তৈরি করা সম্ভব।


SignalR ইনস্টল এবং কনফিগারেশন

প্রথমে SignalR ইনস্টল করতে হবে এবং আপনার ASP.NET Core প্রজেক্টে সেটি কনফিগার করতে হবে।

NuGet প্যাকেজ ইনস্টল করা

SignalR এর প্যাকেজ ইনস্টল করতে Microsoft.AspNetCore.SignalR প্যাকেজটি NuGet থেকে ইনস্টল করুন:

dotnet add package Microsoft.AspNetCore.SignalR

SignalR হাব (Hub) তৈরি করা

SignalR অ্যাপ্লিকেশনটি Hub ক্লাসের মাধ্যমে পরিচালিত হয়। Hub হল SignalR এর কম্পোনেন্ট যা ক্লায়েন্ট এবং সার্ভারের মধ্যে যোগাযোগ তৈরি করে। ক্লায়েন্টরা Hub-কে কানেক্ট করে এবং সার্ভার থেকে মেসেজ পায় বা সার্ভারে মেসেজ পাঠায়।

Hub ক্লাস তৈরি

using Microsoft.AspNetCore.SignalR;

public class ChatHub : Hub
{
    public async Task SendMessage(string user, string message)
    {
        // সার্ভার থেকে ক্লায়েন্টে মেসেজ পাঠানো
        await Clients.All.SendAsync("ReceiveMessage", user, message);
    }
}

এখানে SendMessage মেথডটি সার্ভারের মাধ্যমে সমস্ত কানেক্টেড ক্লায়েন্টকে মেসেজ পাঠানোর কাজ করে। Clients.All.SendAsync এর মাধ্যমে সার্ভার থেকে সমস্ত ক্লায়েন্টে মেসেজ পাঠানো হয়।


SignalR কনফিগারেশন

SignalR কাজ করার জন্য Startup.cs ফাইলে কিছু কনফিগারেশন করা প্রয়োজন। এখানে ConfigureServices এবং Configure মেথডে SignalR কনফিগার করা হয়।

ConfigureServices মেথডে SignalR কনফিগারেশন

public void ConfigureServices(IServiceCollection services)
{
    services.AddSignalR(); // SignalR সেবা যোগ করা
}

Configure মেথডে SignalR ব্যবহার

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    if (env.IsDevelopment())
    {
        app.UseDeveloperExceptionPage();
    }
    else
    {
        app.UseExceptionHandler("/Home/Error");
        app.UseHsts();
    }

    app.UseRouting();

    // SignalR Hub ম্যাপ করা
    app.UseEndpoints(endpoints =>
    {
        endpoints.MapHub<ChatHub>("/chathub"); // SignalR Hub এর URL ম্যাপ করা
    });
}

এখানে MapHub মেথডের মাধ্যমে SignalR Hub কে একটি URL এর সাথে ম্যাপ করা হয়েছে। এই URL-টি চ্যাট অ্যাপ্লিকেশনের ক্লায়েন্ট সাইডে ব্যবহার করা হবে।


ক্লায়েন্ট সাইডে SignalR ব্যবহার

SignalR ক্লায়েন্ট সাইডে ব্যবহারের জন্য, SignalR JavaScript Client লাইব্রেরি ব্যবহার করতে হবে।

SignalR JavaScript লাইব্রেরি ইনস্টল

প্রথমে, SignalR JavaScript Client লাইব্রেরি ইনস্টল করতে হবে। এটি npm বা CDN মাধ্যমে করা যেতে পারে। যদি আপনি npm ব্যবহার করেন, তাহলে নিচের কমান্ডটি রান করুন:

npm install @microsoft/signalr

যদি আপনি CDN ব্যবহার করতে চান, তবে এই স্ক্রিপ্টটি HTML ফাইলে যুক্ত করুন:

<script src="https://cdnjs.cloudflare.com/ajax/libs/signalr/3.1.13/signalr.min.js"></script>

ক্লায়েন্ট সাইডে SignalR কানেক্ট করা

এখন, ক্লায়েন্ট সাইডে SignalR Hub-এ কানেক্ট হতে হবে এবং মেসেজ পাঠানো এবং প্রাপ্তির জন্য কোড লিখতে হবে।

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Chat App</title>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/signalr/3.1.13/signalr.min.js"></script>
</head>
<body>
    <h2>Chat Application</h2>
    <div id="messagesList"></div>
    <input type="text" id="userInput" placeholder="Enter your name">
    <input type="text" id="messageInput" placeholder="Type a message">
    <button id="sendMessageButton">Send</button>

    <script>
        const connection = new signalR.HubConnectionBuilder()
            .withUrl("/chathub")
            .build();

        // মেসেজ রিসিভ করার জন্য ক্লায়েন্ট সাইডে মেথড ডিফাইন করা
        connection.on("ReceiveMessage", function (user, message) {
            const msg = user + ": " + message;
            const msgList = document.getElementById("messagesList");
            const newMessage = document.createElement("div");
            newMessage.textContent = msg;
            msgList.appendChild(newMessage);
        });

        // SignalR কানেক্ট হওয়া
        connection.start().catch(function (err) {
            return console.error(err.toString());
        });

        // মেসেজ পাঠানোর জন্য ফাংশন
        document.getElementById("sendMessageButton").addEventListener("click", function () {
            const user = document.getElementById("userInput").value;
            const message = document.getElementById("messageInput").value;
            connection.invoke("SendMessage", user, message)
                .catch(function (err) {
                    return console.error(err.toString());
                });
        });
    </script>
</body>
</html>

এখানে, ক্লায়েন্ট সাইডে SignalR কানেকশন তৈরি করা হয়েছে এবং ReceiveMessage নামক মেথডের মাধ্যমে সার্ভার থেকে প্রাপ্ত মেসেজ UI-তে দেখানো হচ্ছে। এছাড়া, SendMessage মেথডটি ব্যবহারকারীর ইনপুট নিয়ে সার্ভারে পাঠানো হচ্ছে।


সারাংশ


ASP.NET Core এবং SignalR ব্যবহার করে রিয়েল-টাইম চ্যাট অ্যাপ্লিকেশন তৈরি করা অত্যন্ত সহজ। SignalR ক্লায়েন্ট এবং সার্ভারের মধ্যে রিয়েল-টাইম যোগাযোগ স্থাপন করে, যা চ্যাট অ্যাপ্লিকেশনগুলোর জন্য আদর্শ। SignalR হাব ব্যবহার করে মেসেজ প্রেরণ এবং গ্রহণ করা হয়, এবং ক্লায়েন্ট সাইডে JavaScript লাইব্রেরি দিয়ে মেসেজ পাঠানো ও গ্রহণ করা সম্ভব হয়। এই প্রক্রিয়াটি ওয়েব অ্যাপ্লিকেশনের জন্য রিয়েল-টাইম ইন্টারঅ্যাকটিভ ফিচার তৈরি করতে সহায়তা করে।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion